<?php
/**
 * Created by PhpStorm.
 * User: Rag_Panda
 * Date: 2015/12/9
 * Time: 14:10
 */

namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use BaseClass\Base\AdminPowerGroup;
use BaseClass\Component\Article\Article;
use BaseClass\Component\Article\ArticleClass;
use Illuminate\Support\Facades\Request;

class ArticleController extends Controller
{

    /*
     * $query_limit
     * |-start  起始
     * |-num   每页条数
     * |-class  类别
     * |-sort   排序
     * |-search 搜索关键字
     * |-user   用户筛选（如果不设置查看所有文章）
     * |-desc   是否逆转排序即倒序(默认正序)
     * |-subject 专题限制
     * |*/

    /*
     * $return_data
     * |-status 是否成功
     * |-message 消息
     * |-data   数据 DB返回的二维结构
     * |-num    数据总条数
     * |
     * 关联了标签和类*/
    public function sArticle()
    {
        $query_limit = Request::input("query_limit");

        //判断是不是管理员
        //管理查询模式开启条件 = 管理员权限+无用户位请求+检查可读文章权限
        if(session("admin.admin_status") == true &&!isset($query_limit["user"])&& AdminPowerGroup::checkAdminPower(9))
        {

            $articleArray = Article::select($query_limit);
        }
        //如果是用户
        else
        {
            //如果没有session直接断掉
            if(session("user.user_id",NULL)==NULL)
            {
                $return_data["status"] = false;
                $return_data["message"] = "你没有权限查看";
                return response()->json($return_data);
            }
            //如果不匹配，检查是否为0，可以的话置为当前session
            if(session("user.user_id")!= $query_limit["user"])
            {
                if($query_limit["user"] == 0)
                {
                    $query_limit["user"] = session("user.user_id");
                }
                else
                {
                    $return_data["status"] = false;
                    $return_data["message"] = "你不能看别人的！";
                    return response()->json($return_data);
                }
            }
            $articleArray = Article::select($query_limit);
        }


        //var_dump($articleArray );

        return response()->json($articleArray);

    }

    public function dArticle()
    {
        $article_id = Request::input("article_id");
        $article = new Article($article_id);
        if(session("admin.admin_status",null)!==null&&AdminPowerGroup::checkAdminPower(6))
        {
            if($article->delete())
            {
                return response()->json(["status"=>true,"message"=>"删除成功"]);
            }
            else
            {
                return response()->json(["status"=>false,"message"=>"删除失败"]);
            }


        }
        else
        {
            if($article->info->article_user == session("user.user_id"))
            {
                $article->delete();
                return response()->json(["status"=>true,"message"=>"完成删除"]);
            }
            else
            {
                return response()->json(["status"=>false,"message"=>"无法删除"]);
            }
        }

    }
    public  function moreArticle()
    {}


    /*
     * $query_limit
     * |-user   按照用户筛选 （不写检查所有用户，会检查是否有管理员权限，也可设置为0自动改成当前session用户）
     * |-sort   排序方式
     * |-num    每页条数
     * |-start  开始
     * |-desc   是否倒序列
     *
     *

    * $return_data
    * |-status 是否成功
    * |-message 消息
    * |-data   数据 DB返回的二维结构
     * */
    public function sArticleClass()
    {

        $query_limit = Request::input("query_limit");
        //管理查询模式开启条件 = 管理员权限+无用户位请求+检查可读文章权限
        /*if(session("admin.admin_status") == true &&!isset($query_limit["user"])&& AdminPowerGroup::checkAdminPower(9))
        {

            $articleArray = ArticleClass::select($query_limit);

        }
        else
        {
            //如果没有session直接断掉
            if(session("user.user_id",NULL)==NULL)
            {
                $return_data["status"] = false;
                $return_data["message"] = "你没有权限查看";
                return response()->json($return_data);
            }
            //如果不匹配，检查是否为0，可以的话置为当前session
            if(session("user.user_id")!= $query_limit["user"])
            {
                if($query_limit["user"] == 0)
                {
                    $query_limit["user"] = session("user.user_id");
                }
                else
                {
                    $return_data["status"] = false;
                    $return_data["message"] = "你不能看别人的！";
                    return response()->json($return_data);
                }
            }
            $articleArray = ArticleClass::select($query_limit);
        }*/

        $articleArray = ArticleClass::select($query_limit);
        return response()->json($articleArray);

    }

    public function uArticleClass()
    {
        /**
         * 需要POST一下信息
         * |-article_id
         * |-class_id
         */
        $requestData = Request::only("article_id","class_id");
        $articleModel = new Article($requestData["article_id"]);
        if($articleModel -> update(["article_class"=>$requestData["class_id"]]))
        {
            return response()->json(["status"=>true,"message"=>"成功更改文章类别"]);
        }
        else
        {
            return response()->json(["status"=>false,"message"=>"无法更改文章类别"]);
        }

    }


    /*
     * $query_limit
     * |-start  起始
     * |-num   每页条数
     * |-class  类别
     * |-sort   排序
     * |-search 搜索关键字
     * |-user   用户筛选（如果不设置查看所有文章）
     * |-desc   是否逆转排序即倒序(默认正序)
     * |-subject 专题限制
     * |-id        指定文章

     *
     * $return_data
     * |-status 是否成功
     * |-message 消息
     * |-data   数据 DB返回的二维结构
     * |-num    数据总条数
     * |
     * 关联了标签和类*/
    public function sIndexArticle()
    {

        $query_limit = Request::input("query_limit");

        $articleArray = Article::select($query_limit);
        return  response()->json($articleArray);


    }
    public function sIndexArticleByGet()
    {
        $query_limit = Request::all();
        $articleArray = Article::select($query_limit);

        $data =html_entity_decode( response()->json($articleArray));

        return $data;
    }


}